import axios from 'axios'
import store from '../store'

// 根据环境设置 baseURL
const baseURL = process.env.NODE_ENV === 'development' ? 'http://localhost:3000' : 'http://10.7.171.52:3000'

// 创建 axios 实例
const service = axios.create({
  baseURL
})

// 请求拦截
service.interceptors.request.use(config => {
  // 将本地保存的 token 数据携带在请求头中传递到后端服务器
  config.headers['X-Token'] = store.getState().user.token

  return config
})

// 响应拦截
service.interceptors.response.use(response => {
  if (response.status >= 200 && response.status < 300) {
    // 获取从后端接口返回的数据
    const res = response.data
    // 判断前后端规范
    if (res.code === 200) {
      return res.data
    }
    const e = new Error('后端接口数据异常')
    e.error = res
    return Promise.reject(e)
  }

  const err = new Error('接口访问异常')
  err.error = response
  return Promise.reject(err)
})

export default service
